/**
 * @author luzhenfang
 * @date 2020 04 27
 * @description 新增数据类型
 *      any 代表任意类型，一般在获取dom 对象时使用（不确定返回类型情况下使用）
 *      never 代表不存在的值的类型，通常 作为 抛出异常 或无限循环的 函数返回类型。
 *              never 类型是 ts 中底部类型 never 类型可以赋值给任意类型的变量
 *      void 代表没有类型 一般用在无返回值的函数
 *      类型推断：如果变量的声明和初始化在同一行，可以省略掉变量类型的声明。
 *          let xxxx:type = value;
 *          let xxxx =value;
 *      联合类型：表示取值可以为多种类型中的一种
 *              let xxxx:type1|type2 = value;
 */

// any
 let txtName:any =document.getElementById("txtN");
 console.log(txtName);
 


 function sayHello(): string{
     return "Hello,world";
 }
 alert(sayHello());

 // void
function sayBye():void{
    console.log("Bye bye~");
}
sayBye()

// never
function test():never{
    while(true){

    }
}

function test2():never{
    throw new Error("error： xxx");
}

// 类型推断

let tAge =21; // ts 自动推断 为 number 类型
// tAge="a";  错误 此处 tAge 是 number 类型 不能赋值

// 联合类型

let dName:string|null = prompt("请输入小狗的名字");
console.log(dName);
